A centrally managed computer network includes a central controller controlling operation of several nodes that perform certain functions. The functions may be the same or different across the nodes, and the central controller typically controls their operation by executing several steps. First, the central controller periodically gathers the state of each node and builds a global view of the overall network. Second, the central controller computes an optimal policy for each node based on the global information. Third, the central controller distributes the optimal policy to each node, which programs itself to function accordingly.
The central controller gathers information about the network such as the network topology, a traffic demand of the network, or routing plans used by the network to form a global view of the overall network. Based on the global view, the central controller configures a set of routing policies for the network. In particular, the routing policies dictate how data should travel through the network and include sets of data forwarding instructions for each node in the network. For example, the policy may indicate that identification of the next immediate destination for the data packet may be dependent on the size, application, and/or destination address of a data packet. It is desirable for the routing policies to give rise to optimal or near optimal network operation, such as resulting in high data throughput, high efficiency, and/or low cost. Systems and methods to test the performance of a central controller in a centrally managed computer network would therefore be of great benefit in network management.